home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / windows / graphs / multicon.arj / RECTVIEW.CPP < prev    next >
C/C++ Source or Header  |  1994-03-09  |  3KB  |  117 lines

  1. //*************************************************************
  2. //  File name: RECTVIEW.CPP
  3. //
  4. //  Description:
  5. //     Implementation for the CRectView class.
  6. //
  7. //  History:    Date       Author     Comment
  8. //              3/8/94     FJB        Created
  9. //
  10. // Written by Microsoft Product Support Services, Windows Developer Support
  11. // Copyright (c) 1994 Microsoft Corporation. All rights reserved.
  12. //*************************************************************
  13.  
  14. #include "stdafx.h"
  15. #include "multicon.h"  
  16. #include "micondoc.h" 
  17. #include "modview.h"
  18. #include "rectview.h"  
  19.  
  20. #ifdef _DEBUG
  21. #undef THIS_FILE
  22. static char BASED_CODE THIS_FILE[] = __FILE__;
  23. #endif 
  24.  
  25. //*************************************************************
  26. //  Class:
  27. //      CRectView 
  28. //
  29. //  Description:
  30. //      AppWizard generated view class that draws a rectangle of random color
  31. //      and size.
  32. //
  33. //  Derived from:
  34. //      CModView
  35. //
  36. //  Data Members:
  37. //      None
  38. //
  39. //  Member Functions:
  40. //      CRectView      : Constructor
  41. //     ~CRectView      : Destructor
  42. //      GetDocument    : Returns a CMulticonDoc*
  43. //      OnDraw         : Draws an rectangle
  44. //
  45. //  Comments
  46. //      This class is derived from CModView, a CView derived class that
  47. //      exposes a public OnDraw override.
  48. //
  49. //  History:    Date       Author     Comment
  50. //              3/8/94     FJB        Created
  51. //
  52. //*************************************************************  
  53.  
  54.  
  55. IMPLEMENT_DYNCREATE(CRectView, CModView)
  56.  
  57. CRectView::CRectView()
  58. {
  59. }
  60.  
  61. CRectView::~CRectView()
  62. {
  63. }
  64.  
  65.  
  66. BEGIN_MESSAGE_MAP(CRectView, CModView)
  67.    //{{AFX_MSG_MAP(CRectView)
  68.       // NOTE - the ClassWizard will add and remove mapping macros here.
  69.    //}}AFX_MSG_MAP
  70. END_MESSAGE_MAP()
  71.  
  72.  
  73. /////////////////////////////////////////////////////////////////////////////
  74. // CRectView drawing
  75.  
  76.  
  77. void CRectView::OnDraw(CDC* pDC)
  78. {   
  79.    CMulticonDoc* pDoc = GetDocument();
  80.    
  81.    CRect rcClient;
  82.    GetClientRect(&rcClient);
  83.    // Compute some random coordinates for the rectangle
  84.    // Make it a little larger than the client area to make sure the 
  85.    // clipping is working OK.
  86.    int xMin = rcClient.left   - rcClient.Width()/4;
  87.    int xMax = rcClient.right  + rcClient.Width()/4;
  88.    int yMin = rcClient.top    - rcClient.Height()/4;
  89.    int yMax = rcClient.bottom + rcClient.Height()/4;
  90.  
  91.    int x1 = pDoc->Rand(xMax,xMin);
  92.    int x2 = pDoc->Rand(xMax,xMin);
  93.    int y1 = pDoc->Rand(yMax,yMin);
  94.    int y2 = pDoc->Rand(yMax,yMin);
  95.  
  96.    // Compute a random RGB value    
  97.    int nRed   = pDoc->Rand(255);
  98.    int nBlue  = pDoc->Rand(255);
  99.    int nGreen = pDoc->Rand(255);  
  100.       
  101.    CBrush br;
  102.    br.CreateSolidBrush( RGB(nRed,nBlue,nGreen) );
  103.       
  104.    CBrush *pbrOld = pDC->SelectObject(&br);
  105.       
  106.    pDC->Rectangle(x1,y1,x2,y2);
  107.       
  108.    pDC->SelectObject(pbrOld);
  109.    br.DeleteObject();
  110. }
  111.    
  112.  
  113.  
  114. /////////////////////////////////////////////////////////////////////////////
  115. // CRectView message handlers
  116.  
  117.